/*
 * Proyecto Manejador de Proyectos
 * @Autor Hector Hurtado
 */
package Mproyectos.entidades;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * Representa el usuario que esta dentro del sistema
 */
@Entity
public class Usuario implements Serializable {

    /**
     * Nombre
     */
    @Id
    private String nombre;
    /**
     * contraseña del usuario
     */
    private String contraseña;
    /**
     * Tipo de usuario
     */
    private String tipo;

    /**
     * Constructor vacio. Necesario para utilizar JPA
     */
    public Usuario() {
    }

    /**
     * Nombre
     *
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Nombre
     *
     * @param nombre el nombre del artista
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Representa el artista en forma de cadena con el nombre
     *
     * @return Nombre del usuario
     */
    @Override
    public String toString() {
        return getNombre();
    }

    /**
     * Devuelve el codigo hash de la clase deacuerdo al nombre del artista
     *
     * @return Codigo hash calculado con el nombre del artista
     */
    @Override
    public int hashCode() {
        int hash = 7;
        hash = 89 * hash + (this.getNombre() != null ? this.getNombre().hashCode() : 0);
        return hash;
    }

    /**
     * Verifica si un objeto es igual a otro. Un usuario es igual a otra si
     * tiene el mismo nombre
     *
     * @param obj Objeto con el cual se quiere comparar
     * @return true si el objeto es una ciudad y tiene el mismo nombre
     */
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Usuario other = (Usuario) obj;
        if ((this.getNombre() == null) ? (other.getNombre() != null) : !this.nombre.equals(other.nombre)) {
            return false;
        }
        return true;
    }

    /**
     * contraseña del usuario
     *
     * @return the contraseña
     */
    public String getContraseña() {
        return contraseña;
    }

    /**
     * contraseña del usuario
     *
     * @param contraseña the contraseña to set
     */
    public void setContraseña(String contraseña) {
        this.contraseña = contraseña;
    }

    /**
     * Tipo de usuario
     *
     * @return the tipo
     */
    public String getTipo() {
        return tipo;
    }

    /**
     * Tipo de usuario
     *
     * @param tipo the tipo to set
     */
    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
}
